//
//import java.text.ParseException;  
//  
//import javax.annotation.Resource;  
//  
//import org.quartz.CronTrigger;  
//import org.quartz.JobDetail;  
//import org.quartz.Scheduler;  
//import org.quartz.SchedulerException;  
//import org.quartz.SchedulerFactory;  
//import org.springframework.stereotype.Service;  
//  
//@Service("quartzUtil")  
//public class QuartzUtilImpl implements QuartzUtil {  
//  
//    @Resource  
//    SchedulerFactory schedulerFactory;  
//      
//    @Override  
//    public void addJob(String jobName, String jobGroupName, String triggerName,  
//            String triggerGroupName, Class jobClass, String cronExpression) throws SchedulerException, ParseException {  
//        // 获得 Quartz 的调度器实例 scheduler；  
//        Scheduler scheduler = schedulerFactory.getScheduler();  
//        // 获取 Quartz 任务类实例 jobDetail；  
//        JobDetail jobDetail = new JobDetail(jobName, jobGroupName, jobClass);  
//        // 获取 Quartz 触发器实例 trigger；  
//        CronTrigger trigger = new CronTrigger(triggerName, triggerGroupName, cronExpression);  
//        // 调度任务；  
//        scheduler.scheduleJob(jobDetail, trigger);  
//        // 如果调度器未被关闭，则启动调度器；  
//        if (!scheduler.isShutdown()) {  
//            scheduler.start();  
//        }  
//    }  
//      
//    @Override  
//    public void modifyJobTime(String jobName, String jobGroupName,  
//            String triggerName, String triggerGroupName, String cronExpression) throws SchedulerException, ParseException {  
//        // 获得 Quartz 的调度器实例 scheduler；  
//        Scheduler scheduler = schedulerFactory.getScheduler();  
//        // 从调度器中获取指定群组的指定名称的触发器实例；  
//        CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerName, triggerGroupName);  
//        // 对获取的触发器进行判空操作；  
//        if (trigger == null) {  
//            return;  
//        }  
//        String oldCronExpression = trigger.getCronExpression();  
//        // 如果新的执行时间与旧的执行时间相同，则返回，不继续下一步的操作；  
//        if (oldCronExpression.equalsIgnoreCase(cronExpression)) {  
//            return;  
//        }  
//        // 获取任务信息；  
//        JobDetail jobDetail = scheduler.getJobDetail(jobName, jobGroupName);  
//        // 获取到任务类；  
//        Class jobClass = jobDetail.getJobClass();  
//        // 移除旧的任务；  
//        this.removeJob(jobName, jobGroupName, triggerName, triggerGroupName);  
//        // 添加新任务；  
//        this.addJob(jobName, jobGroupName, triggerName, triggerGroupName, jobClass, cronExpression);  
//    }  
//      
//    @Override  
//    public void removeJob(String jobName, String jobGroupName, String triggerName, String triggerGroupName) throws SchedulerException {  
//        // 获得 Quartz 的调度器实例 scheduler；  
//        Scheduler scheduler = schedulerFactory.getScheduler();  
//        // 暂停定时器；  
//        scheduler.pauseTrigger(triggerName, triggerGroupName);  
//        // 取消任务调度；  
//        scheduler.unscheduleJob(jobName, jobGroupName);  
//        // 删除任务；  
//        scheduler.deleteJob(jobName, jobGroupName);  
//    }  
//      
//    @Override  
//    public void startAllJobs() throws SchedulerException {  
//        // 获得 Quartz 的调度器实例 scheduler；  
//        Scheduler scheduler = schedulerFactory.getScheduler();  
//        // 如果调度器未被关闭，则启动调度器；  
//        if (!scheduler.isShutdown()) {  
//            scheduler.start();  
//        }  
//    }  
//      
//    @Override  
//    public void shutdownAllJobs() throws SchedulerException {  
//        // 获得 Quartz 的调度器实例 scheduler；  
//        Scheduler scheduler = schedulerFactory.getScheduler();  
//        // 如果调度器未被关闭，关闭调度器；  
//        if (!scheduler.isShutdown()) {  
//            scheduler.shutdown();  
//        }  
//    }  
//      
//    @Override  
//    public void pauseJob(String jobName, String jobGroupName) throws SchedulerException {  
//        // 获得 Quartz 的调度器实例 scheduler；  
//        Scheduler scheduler = schedulerFactory.getScheduler();  
//        // 暂停调度器中的指定任务；  
//        scheduler.pauseJob(jobName, jobGroupName);  
//    }  
//      
//    @Override  
//    public void resumeJob(String jobName, String jobGroupName) throws SchedulerException {  
//        // 获得 Quartz 的调度器实例 scheduler；  
//        Scheduler scheduler = schedulerFactory.getScheduler();  
//        // 恢复调度器中的指定任务；  
//        scheduler.resumeJob(jobName, jobGroupName);  
//    }  
//  
//}  